Numerous power management schemes have been proposed for managing the power consumption of computer systems. Such schemes typically power down idle devices in order to save power and reduce heat. Power conservation is especially important in portable computers that need to maximize their battery life.
FIG. 1 illustrates a conventional power management scheme. This power management scheme 100 utilizes a single centralized power manager to control the power consumption of its computer system. This power management scheme includes a power manager 105, several power management clients 110, and several device drivers 115. As shown in FIG. 1, the device drivers control several devices 120 of the computer system.
The power manager 105 is a centralized piece of software that controls the power consumption of the devices 120. Specifically, this manager communicates with device drivers 115 and with certain devices 120, in order to receive information about the operational states of the devices 120. Based on these operational states and on the power manager""s knowledge of the hardware devices, the power manager determines when to change each device""s power state.
The power management clients 110 can also order the power manager to change the device power states. For instance, the power management clients might order the power manager to put the system to sleep based on a user""s manual request or the computer""s automated sleep setting. In portable computers, the power management clients 110 might also request the power manager to put the system to sleep when the battery level is critically low. As shown in FIG. 1, the power manager 105 directly orders certain devices (e.g., device 4 in this figure) to change their power states, while ordering other devices through the device drivers 115.
The centralized power management scheme of FIG. 1 has several disadvantages. For instance, it requires one centralized power manager module to know how to communicate with the device drivers and in some instances with the devices themselves. This, in turn, complicates the development and maintenance of the power manager module. The power manager needs to be modified each time a device driver is modified or a new one is added. Moreover, the power manager needs to have detailed information about the operation of the devices. This manager also needs to know the hierarchical relationship between the devices. These requirements, in turn, complicate the structure and operation of the power manager.
Therefore, there is a need in the art for a distributed power management method. Ideally, this method should simplify the structure and operation of the power management system, and impose minimal development and maintenance requirements.
The invention is directed towards minimizing power consumption in computer systems. One embodiment of the invention is a power management system that is used for a computer system that has at least one device and one power domain. This embodiment uses two different power managers to manage the power consumption of the device and the power domain. Specifically, this embodiment has (1) a first power manager that determines when to change power state of the device, and (2) a second power manager that determines when to change power state of the power domain. Each of these power managers decides to change the power state of its corresponding device or domain based on information from several different sources. These sources can include power-management clients and power managers of related domains or devices.